package cn.xuexiyuan.ribbonconsumer;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.web.client.RestTemplate;

/**
 *
 * 通过 @EnableDiscoveryClient 注解让该应用成为 Eureka 客户端应用，以获得服务发现的能力。
 *  同时， 在该主类中创建 RestTemplate 的Spring Bean 实例，并通过 @LoadBalanced 注解开启客户端负载均衡。
  */
@EnableDiscoveryClient
@SpringBootApplication
public class RibbonConsumerApplication {

    Logger logger = LoggerFactory.getLogger(this.getClass());

    @Bean
    @LoadBalanced
    RestTemplate restTemplate(){
        logger.info("实例化 RestTemplate");
        return new RestTemplate();
    }

    public static void main(String[] args) {
        SpringApplication.run(RibbonConsumerApplication.class, args);
    }

}
